API層如下所示
if start == 0:
f = open(os.path.join(DIR_PATH, hash), 'wb')
else:
f = open(os.path.join(DIR_PATH, hash), 'ab')
f.write(obj)
f.close()
if start+length >= filesize:
# object upload completed...
我們可以看到如果是上傳,前端需要傳遞更多參數 - start, length, filesize,當start+length ≥ filesize才代表上傳完成,由於object一般很大,不可能一直存在記憶體並且一直append,所以我們會把正在upload的東西存成檔案,等到upload完成再一次讀到記憶體